home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac-Source 1994 July
/
Mac-Source_July_1994.iso
/
C and C++
/
Commun⁄Network
/
MailCheck 0.9x ƒ
/
test src
/
mmc_test.c
< prev
Wrap
C/C++ Source or Header
|
1990-08-09
|
3KB
|
175 lines
/*
* main program to test gms server
* by Aaron Wohl (aw0g+@andrew.cmu.edu) jul 1990
* Carnegie-Mellon University
* Special Projects
* Pittsburgh, PA 15213-3890
* (412)-268-5032
*/
#include <stdio.h>
#include <string.h>
#define NIL 0L
#include "mmc_core.h"
#include "mmc_core_private.h"
#include "mmc_prep.h"
#include "mmc_print_state.h"
#include "mmc_macmail.h"
#define fatal_error(xx_arg) {printf xx_arg;fflush(stdout);exit(0);}
extern void exit(int);
char get_cmd(void);
char get_cmd()
{
char buf[100];
printf("mmc> ");
if(gets(buf)==NIL)
return 0;
return buf[0];
}
void get_state(void);
void get_state()
{
mmc_state s;
s.mmc_st_maj_ver=MMC_ST_maj_ver;
s.mmc_st_min_ver=MMC_ST_min_ver;
mmc_get_state(&s,NIL);
mmc_print_state(&s);
}
LDEF(void set_state(mmc_state_pt s))
{
sound_res_state cur_res;
#ifdef RUBBISH
TURN_ON_FLAGS(*s,MCS_debug);
#endif
TURN_ON_FLAGS(*s,MCS_nhow|MCS_hearmm);
cur_res=mmc_use_sound_res();
mmc_set_state(s);
mmc_close_sound_res(cur_res);
get_state();
}
void read_it(void);
void read_it()
{
mmc_state s;
int err;
err=mmc_read_prep(&s);
if(err!=0)
printf("readit failed %d\n",err);
else
mmc_print_state(&s);
}
void write_it(void);
void write_it()
{
mmc_state s;
int err;
mmc_invent_state(&s);
mmc_print_state(&s);
err=mmc_write_prep(&s);
if(err!=0)
printf("write it failed %d\n",err);
}
/*
* warning, for debugging this routine is nearly duplicated in mmc_test.c
* be sure to fix bugs there too
*/
void mmc_macmail(long want_inhibit,char *name)
{
int ref_num;
int len;
mmc_state s;
mmc_invent_state(&s);
if(want_inhibit!=MMC_normal)
s.mmc_st|=MCS_snooze;
len=imax(0,imin(*name,MMC_uname_len-1));
if(len!=0)
memcpy(s.mmc_uname,name+1,len);
s.mmc_uname[len]=0;
set_state(&s);
#ifdef XXXX
ref_num=mmc_drvr_find(MMC_name,0L); /*find it if present*/
if(ref_num==0) /*not running so nothing to tell it*/
return;
mmc_set_drvr_state(ref_num,&s);
#endif
}
void cmd_loop(void);
void cmd_loop()
{
while(TRUE) {
char ch=get_cmd();
switch(ch) {
case 'q':
return;
case 'i':
printf("init err=%d\n",mmc_init());
break;
case 's':
{
mmc_state s;
mmc_invent_state(&s);
set_state(&s);
break;
}
case 'g':
get_state();
break;
case 't':
mmc_tick();
get_state();
break;
case 'm':
mmc_macmail(MMC_inhibit,"\pjs5l");
break;
case 'o':
mmc_macmail(MMC_normal,"\pjs5l");
break;
case '1':
mmc_macmail(MMC_inhibit,"\paw0g");
break;
case '2':
mmc_macmail(MMC_normal,"\paw0g");
break;
case 'u':
mmc_uninit();
break;
case 'r':
read_it();
break;
case 'w':
write_it();
break;
default:
printf("unrecignized command '%c'\n",ch);
}
}
}
void open_res(void);
void open_res()
{
int res_file;
res_file=OpenResFile("\pmmc_drvr.prj.rsrc");
if(res_file== -1) /*find the resource file?*/
fatal_error(("can't open resource file mmc_drvr.prj.rsrc.rsrc file %d",ResError()));
UseResFile(res_file);
}
int main()
{
printf("mmc test client test jig built on %s %s\n",__DATE__,__TIME__);
open_res();
cmd_loop();
}